home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / checkbox / registries / pvs.py < prev    next >
Text File  |  2009-11-05  |  2KB  |  60 lines

  1. #
  2. # This file is part of Checkbox.
  3. #
  4. # Copyright 2008 Canonical Ltd.
  5. #
  6. # Checkbox is free software: you can redistribute it and/or modify
  7. # it under the terms of the GNU General Public License as published by
  8. # the Free Software Foundation, either version 3 of the License, or
  9. # (at your option) any later version.
  10. #
  11. # Checkbox is distributed in the hope that it will be useful,
  12. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. # GNU General Public License for more details.
  15. #
  16. # You should have received a copy of the GNU General Public License
  17. # along with Checkbox.  If not, see <http://www.gnu.org/licenses/>.
  18. #
  19. import re
  20.  
  21. from checkbox.lib.cache import cache
  22. from checkbox.lib.conversion import string_to_type
  23.  
  24. from checkbox.properties import String
  25. from checkbox.registries.command import CommandRegistry
  26. from checkbox.registries.map import MapRegistry
  27.  
  28.  
  29. class PvsRegistry(CommandRegistry):
  30.     """Registry for pvs information.
  31.  
  32.     Each item contained in this registry consists information about
  33.     the mount point.
  34.     """
  35.  
  36.     # Command to retrieve physical volume information
  37.     command = String(default="pvs")
  38.  
  39.     # User to run pvs command
  40.     user = String(default="root")
  41.  
  42.     @cache
  43.     def items(self):
  44.         items = []
  45.         lines = [l.strip() for l in self.split("\n") if l]
  46.         if lines:
  47.             keys_line = lines.pop(0)
  48.             keys = [k.lower() for k in re.split(r"\s+", keys_line)]
  49.  
  50.             for line in lines:
  51.                 values = [string_to_type(v) for v in re.split(r"\s+", line)]
  52.                 map = dict(zip(keys, values))
  53.                 value = MapRegistry(map)
  54.                 items.append((map["pv"], value))
  55.  
  56.         return items
  57.  
  58.  
  59. factory = PvsRegistry
  60.